home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Amiga-E / E_v3.2a / Src / Intui / Public.e < prev    next >
Text File  |  1992-09-02  |  1KB  |  36 lines

  1. -> Opening our public screen with a shell on it ... [nothing fancy]
  2.  
  3. OPT OSVERSION=37
  4.  
  5. MODULE 'intuition/screens'
  6.  
  7. ENUM OKAY,NOSCREEN,NOSIG
  8.  
  9. PROC main() HANDLE
  10.   DEF s=NIL,sig=-1,name
  11.   IF (s:=OpenScreenTagList(0,          /* get ourselves a public screen */
  12.          [SA_DEPTH,4,
  13.           SA_DISPLAYID,$8000,
  14.           SA_PUBNAME,name:='PublicShell',
  15.           SA_TITLE,name,
  16.           SA_PUBSIG,IF (sig:=AllocSignal(-1))=NIL THEN Raise(NOSIG) ELSE sig,
  17.           SA_PUBTASK,NIL,
  18.           0,0]))=NIL THEN Raise(NOSCREEN)
  19.   PubScreenStatus(s,0)                 /* make it available */
  20.   SetDefaultPubScreen(name)
  21.   SetPubScreenModes(SHANGHAI)
  22.   Execute('NewShell WINDOW CON:10/20/400/100/bla',NIL,NIL)
  23.     /* other applications can use our screen also.
  24.        if we just want our shell on it, turn it private again */
  25.   Wait(Shl(1,sig))            /* wait until all windows closed */
  26.   SetDefaultPubScreen(NIL)    /* workbench is default again */
  27. EXCEPT DO
  28.   IF s THEN CloseS(s)
  29.   IF sig>=0 THEN FreeSignal(sig)
  30.   IF exception=NOSCREEN
  31.     WriteF('Could not open screen!\n')
  32.   ELSEIF exception=NOSIG
  33.     WriteF('No signal available!\n')
  34.   ENDIF
  35. ENDPROC
  36.